{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 5.4. Wrapping a C library in Python with ctypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%%writefile mandelbrot.c\n",
    "#include \"stdio.h\"\n",
    "#include \"stdlib.h\"\n",
    "\n",
    "void mandelbrot(int size, int iterations, int *col)\n",
    "{\n",
    "    // Variable declarations.\n",
    "    int i, j, n, index;\n",
    "    double cx, cy;\n",
    "    double z0, z1, z0_tmp, z0_2, z1_2;\n",
    "\n",
    "    // Loop within the grid.\n",
    "    for (i = 0; i < size; i++)\n",
    "    {\n",
    "        cy = -1.5 + (double)i / size * 3;\n",
    "        for (j = 0; j < size; j++)\n",
    "        {\n",
    "            // We initialize the loop of the system.\n",
    "            cx = -2.0 + (double)j / size * 3;\n",
    "            index = i * size + j;\n",
    "            // Let's run the system.\n",
    "            z0 = 0.0;\n",
    "            z1 = 0.0;\n",
    "            for (n = 0; n < iterations; n++)\n",
    "            {\n",
    "                z0_2 = z0 * z0;\n",
    "                z1_2 = z1 * z1;\n",
    "                if (z0_2 + z1_2 <= 100)\n",
    "                {\n",
    "                    // Update the system.\n",
    "                    z0_tmp = z0_2 - z1_2 + cx;\n",
    "                    z1 = 2 * z0 * z1 + cy;\n",
    "                    z0 = z0_tmp;\n",
    "                    col[index] = n;\n",
    "                }\n",
    "                else\n",
    "                {\n",
    "                    break;\n",
    "                }\n",
    "            }\n",
    "        }\n",
    "    }\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "!!gcc -shared -Wl,-soname,mandelbrot \\\n",
    "    -o mandelbrot.so \\\n",
    "    -fPIC mandelbrot.c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import ctypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "lib = ctypes.CDLL('mandelbrot.so')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "mandelbrot = lib.mandelbrot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "from numpy.ctypeslib import ndpointer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define the types of the output and arguments of\n",
    "# this function.\n",
    "mandelbrot.restype = None\n",
    "mandelbrot.argtypes = [ctypes.c_int,\n",
    "                       ctypes.c_int,\n",
    "                       ndpointer(ctypes.c_int),\n",
    "                       ]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "# We initialize an empty array.\n",
    "size = 400\n",
    "iterations = 100\n",
    "col = np.empty((size, size), dtype=np.int32)\n",
    "# We execute the C function, which will update\n",
    "# the array.\n",
    "mandelbrot(size, iterations, col)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "podoc": {
     "output_text": "<matplotlib.figure.Figure at 0x7fa4c6641c50>"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n3rNnT+zBF04vu/st6orhoMiDoaDFG9SQ0G6LxMQNDR0bwuUP23IXuNAXxV96x35Dqg61OznmCXTs\n1soRWzdapHkvAAAgAElEQVRstvUR2e+2OtBhcf5iMWntGHpZxt/nf6w6lG+uc8xVuorOp6VeIPUO\nqaukLozOuVzGhHodJ8YNOzTGmCv/TjY+LPURW1b/oa36+XGHg658ta1bf2irDuNdIX8G3CZDKd2F\nenSY6HTvti7a4w6xnVPVQjL/ZMvWS23Vj90dhqlf74NejaPn6zfGMv24VthyyVXjzxlbBEiP/a7U\nh2y56G9sdV+j/jBR/TrrEOB3xzy+vjYWXCIb+o34SVt0GLYx0UJOXtN5Xx2GiKYuDqOvMW0zo4vD\n6AJGOjrZbT0jw2H1Y/MXi+llaGjRi8a0dWgoi8YU47rd8b+cpk2bNiH2jhgkggAAAAAQGBaLQS4k\ngeiG1G8wql4cpidpbRg0/dBl3k+UqimfRnk3Oi0UNPnQd/v3ShKob5Lqu/5x68FnafjdbRn/3V3u\ndx9Xn+9NUjtSpl9J1Q/6r215+nJbH5ZUbkvM4/vtCXThmY4e7h/2DnrCFl0sRJPA5bOdY261ZZ6s\nNPOoXIs5z5aF8kldOGP8Nf1a3ozWwEnTv73um9QvknqMVP3YNfX80PjHzewjzvZtUuVz/PxvbNXX\nji7u4jaLX/SfsqF5zPW2bP6MrSMxaeZN/hvwq225Suoq5/6364bGa9o35C9s0a+hu3jJk1J1cSC/\nBch6Z3vlqK2zNC7UmOzntmyXL8xyZ5WaG+TFtds7xfueTUvjik4LM7WFMKYzafa/F/X77SPe/h5S\nfncUxKAXjmHRGJSNRBAAAAAAAsMcQWRCAogkJH+DV0UKmLWBfFr7iMS5gsaMT840zNAPVsOLJedG\n5+yViWuaaH1Lqr5tr/O33EQwaUn+pKTFmCitTJtHmEQ/Lv1G0WRixs+iY359mq2aUsw7WzY0KXqL\nLdtiPrtf9W6fINWdg6jtNIb1V/hrpf7AFm2dsCjuV/z35RplstUs/5jXOtvyeOZ5qU0fdKRfrMsS\nbhtjnpbP3Qz/8yK9QDZJc3o3zT1H6qx3yYa0sNAkdZYmks43yEVe4ui3qzjGuU9P0/m0886wde+d\ntj4i+9c55+h8Qr1OPzFLS/OrEvdzRD8P2oJF5whOlK/PGvk8ftQ5Rz42P9FMayzfLRlkrmA2zBXs\n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\n1tlXp9ZpM/h+LllrWhgmg9q33p6TpqFLs5I7jTPsT6ZENk/IhV9Ndx6W+6vt+6RtNMI5iNoxW98U\n+00YpG9Ayv5WqvZE0Tjpfl+2/XJn1yX6gbLps3POnS5VPs/28xZOl1v6ermhk2a/Yx7UdPA2qfID\noT/Q2krB/lAv0P4td7pcT+U/3FPW8XnPe3TGdv05t8ngnKDKlMrpt0nbRtggpUcSGKaAzvVOAmkZ\nUQwp4PiRCAIAAABAYkgEkYtkEFYsKSQlHJ06NZ/vh15h75orGKOrbeoVfb2SP31Z/hGzr6yCqIGZ\nJoJh43d7ST+c16dBir7u3ZFzGqa5ttI5S5pQzP/nzmOPv8LXHZLmLZa5jdNzvSTR22knFsq+Pwxe\nR1cj3fKFzraXyu3pFUXPlSpJ4GZ5rnNiiaS89uMyobNr/uK55vY/StXVW5v+X4xPSP1wxn3XmXc3\nP3xfVviyVeaX2jl+x0gkt0BXqv2cL49f6es5/0eqibouCab8XPYtX4+c8PUE85gedobUxZL2nRic\n4t+b27skCcyaGzhsEjiMrNfOSgqdc04DU/3dcJh8fx6U9/H+7kOKJIHj0ua5gRgvEkEAAAAASEzT\nL9dhRMJx3CSEUMwnHL1x9BzUOTGDzBUslARqAqjJmc6lu3yJ3JBL+Dd+q3OMBmQ6f1DDKQ2m7KqI\nIU0Aw4TQ3u+VAMbmKGXRuUk6L/LZV3Qeu/S9vi7QtFN6xu2RN2XX+321qZImgWFsodPO7C/piTCt\n+ogvGyUdeUK320+Tfsru9eU+ubvgArkhKdb0m208LkuYaiK7SF5/n0m15up1aI2y9BsuSZr7o+7n\nLewT5rbOk/s3X57/sa/6vdNz3G8OWfx/gnN5ny/bPu3rEpMIahKo7+Uqfa9lWcqlcvfW2CJ+n5x5\nd4Es3Xndz/l6n3lMP5dhf0r9uTnC7Hupvqj+MP2SHCNLaM672dePn9Y5Zrl8uIZIAmOrbA6j5++N\nvHP7olRdXfUT8v4/GNt5prwkkLmB5WBuYH2QCAIAAABAYkgEMRDmDqKXvDkNpIXladS8QZ3Towma\nXaRSw4t3BPteIat46mX6MzqHTM8J1Mv050h6OE+O0bDJpiU6NyhMAvPSv169zfrpfaY93E6xG39B\nqqZXf+3LfOmPOP8KX5eu6ByyVqKh8Ov4J6l27uDHJQF0H5N6nC+6Wqkmp1fs7hyzRlae3CErWGoa\nec5NcqqRhEXaLk5/f/X+U7KvndM196euOh/OuO2cO+zPff3Jh3zVr92+j/dJIqfzU591M91p0j09\nvisqv9yXy67sPr1rpa7RyOvrUuVzoN/DRzuHZPas1ETQ9uR8XOYl6vd32YlyQ1YlXSir7V5tIubw\n85+RtpWd+uXJeq2upDB2rvqzrz9vy6Xq59Wm+D1SzyK9AqvC3EBUjUQQAAAAABLDH4IAAAAAkJhZ\nhw5lNbDtNjU1Fd354nlFZsqj7RgmikExVLQ8oxoimrVozDGRbdNDuRZJ1WFsdlWGa2T85tWyescP\nZHs4JO50103Hx75M6kulLpN/staboXzaHkKH3YVD4voZ5tmPcDis/dBrr3EdLvpSN9P1Uh8w256U\nus/FHW9u69opn5e65ipfL3l/5unOGE5rHRk8Pts8ptvmBVW/rkVfNDu/w43Xu6XKojebzWdEF8/R\nYZ86NDS2sExI3x/9bMeGdOpwTv1h1TVbdB0k/WxmDQeNPZfpFuJukKrnvWahrzr0V4dHn2SO0UWM\ndsZfZpRDQouKLiaTNfw8/A/KS8xtWZvpoCzOEy4WU2RoaFWLxLRtaCiLxJRrw974P1iTk5Ox1ami\nSAQBAAAAIDEkgqgMCSGGQUo4nKqTwSJtJDQd7EoEtcnz683OWWmIJnZ6Zf9r5hhNusIl4cMWFK8x\nj31Wql5qz2qgbQ3STDur2bV+Y95qtsnaLdOLe+giOPoGrpFrthe90DnGLiQSMyfnsbk5j/V6Hk39\nwmTQuU4ze/16VhX//0Wt3CgX0zUK0mRNo6IDrluY3mUltZYmpfp84WeyH3bhJf2e6fPrAku6cIp2\nKbGf+RosDjOo3GRQf970d4KmoPeafe/wRb9W/Tb3s0hM2Ylg25JARSJYLhJBAAAAAEDfaB+BytBi\nAsMIr4iSEPan6rYSfTWY1yTwUqnfk3q32UeTJU1WwkvseuFztdn2iMuniZpd/l9fRxOCgsvm902f\nJ0wG9fV+YLZdIzHF8l0z99VkZ60kgTYFHCQ1UvoeF0kNe+1r5wheqgmgfmO/IvUtfZ3e2F2oDdn3\n+HLFrsxdeyaBefP89B/JrO/lsPNVNQlcLdf8r31h5vNGPuvDJIB5jdiHEZt3bNlzzmxCr1NSPyB1\nsnuXQc6fBvLFkATWF4kgAAAAACSGRBCVi10JIiVEv0gIB1OLhvO6EuHVUjWRuNPs8y6pmo5kJXN3\nmNtZ8/CkV/j0nLtYmvUrwTmUlQSGsp732+b2iUHipNPu9b3olXzG5CWGmoaEaZV9nzTZyppPeFRQ\nnXNut0xLWajJ4MtzT7G+dALkXb6skUh57YSvsTmCvZLAIgnuMAlg3rFnlpcEVpX69fOavRLCGfR3\njo5GiKyKGn7t41oltK3zAlFvJIIAAAAAkBhWDcVYkQyiTKSExVSRDubNFcy6gp85n8cIr9YXOWY6\nKdSegzbV2i41Jx3pdQ55Cp1fKCvZHEaRf5Yj86SmaTo4N7ivcyyvvE5u6DxA55z7x0Kn1hya0bzJ\nl/Xy4bH9HDX52xfcV3lJYD8JYD+Jdfh5KmFF0HEkgUXZ3y9dKxRfIPUmX7J6BTo33lVCnWtnIsjc\nwGqxaigAAAAAoG8kgqgFkkFUgYQw36iTQdXXHJ8+dKVxfyx1g9kWmSPkXPX90gZKCkPDJodZ/1TH\nksGsRFC/eR9f6Ovu3Z1jFr5WbnxnwBOsm1/z5eAtvk6c5ut12zu7/JPUsP+liiWCvZLAiuartiUB\nzNPVu1SEPQItksDqkAhWi0QQAAAAANA3/hAEAAAAgMTQPgK1EA4fYKgoykDLiXxVtJaww6yyhokO\nMuysyHDSroVlPtp7n1EZaNGbUN6QwSLDRnUUUT+zOaTXvfuw1C/pA/LpWbjH7Dy/jyduAhniKl0j\n3EEZbbXS7PJDqY+6mYq0iwgNMSR02M91U4eChqa/jh7vx7iHg7YZw0GbhUQQAAAAABJDIoha0itK\nJIMoU2xSPilhdU3n9ap7kQVkeimSWISp4bjSvyLyzm2otLDsVhT6xk9I34hLw9SvbSlgzLG+/Kvc\nXXp156ETpFP5LrkfLhaj8haI6SMJLOMzPer0r5/0bRBFfr8Mcg5VJ4FtXiQGzUEiCAAAAACJIRFE\nrcXGmpMSokzMI+yoOhkMlZEUWqNOOqpqgzHUfMIiyWA4V1Dns+U1mN92wNcl0n9jh8yXW3ya2enf\nCp5k03zEl+fe4+vVl3YeeiDYdU5wP2+uYMuSwKqTv1G9LkngYJgb2EwkggAAAACQGBJBNA7zB1El\nEsL4FfEqms/HruSXnRJWKS9hKTMtjKVBPVNCmzb1mjeYlwSqTVK3H+7rK/SBzxY4uOlW+LLsD6Uu\nN4/9lS+X3e6rJoIlxD51Xwl0XAlgVUgCkSISQQAAAABIDIkgGovegxgFexU3xXRQVTV/MDSq+YRV\ny0pjykoKNS0aaIXRLHZ+21ypsliomy1VpwQuOiQ3PmEO+o8lnkyd6E/+J6XanwL5yThV5kzq+6Sr\nhw7QT3CQJJD0rz/0BiwPcwObjUQQAAAAABJDIojWYO4gqsb8wdElg6EiiUQTUsNYcjNMSlgoGey1\nkqh+kK/5L51ta//EV00Ez5c6nQSqDxc4y6b7dam/5MuW3eYxSQL1/blB6r7qz8q56pJAEsDyMDcQ\ndUYiCAAAAACJ4Q9BAAAAAEgMQ0PROjShx6ikPFQ0HGo16qGiMU1daEaH91XVoL4nHf559Z90tp0s\n9Tipi3b4ukeGQs4Ph4i22V5ftq719UHz0Dyp0lVj+sP2Vam/HHm6jEby/SwSw5DQuLosApPCcFAW\niWkHEkEAAAAASAyJIJLAQjIYBb0KnFIyqMa1iEwRTVloZphkcKh2EvoL8srXm42PSv2hL7ctnnnM\nigvkxk0DvGDTXOHL0RLvPW0e0g/XE1I1IXx/NWdSZhLYtPSvLmlfHpJANA2JIAAAAAAkhkQQSaEJ\nPUYhdlU4lZQwdtW+jilhKC8dGXVaWFkyGLaR2Bs8vvJbndtnS10uVZvNb5e6WSbBnTPASTbOB3x5\nKPKQfrP0g69B6jORfTMM0kB+GHVOApuQ+sWkkASinUgEAQAAACAxJIJImk0ISQdRJeYPNiMZjBnX\naqQjX010pbl9QKqukKlvwmypq2XV0IOzOsdMPC43jnPt8NdS3+3LivvlvukWr/MFnwwOnSr3TMqY\nG1jHJLCpCaBKKQlkbmA7kQgCAAAAQGJIBAHB/EGMAr0HO5qaEKpYwlJFSjiyZPAGc1vnBB4vVXsN\n6klcJ0ngaeaYpafKjZLjsLH5/eD+eb7M/rnOpqOkniB1k9RJqTV4K+qUBDY9AVSpJIGkgO1HIggA\nAAAAieEPQQAAAABIDENDgQwMFcUo0GpiprYNFy1zqKhdMKSSYaKxYYxhG4SzpOqiMUuPMA/WYBxk\nKb4m9U3BdukWv8yMhz1c+mksXerr97b6mtc+Qtt3PJWzjxt+gZhxDwltyzBQK5UhoUgHiSAAAAAA\nJIZEEChIE0KSQVSNVhPdmpoUaioz6qb0tkl5tLl8vzT4WyHJ1z5JvtwnS3jyupF2Ee5YqSdLfZ/U\nszq7PieJ4NqtboY5QZ00j1UclY0rCWxbAphy+sciMekgEQQAAACAxJAIAn2KXSkjJUQVUm41EWr6\nfMKyk8FKWkrY1CpMtKZDsK/4MneR3P+9Ms+gHrb+WG68yhf9wfuu1FeafZe93ddnrvV1v2zXMPHN\nUg83x7xLao85gv0Y53xAksD2IAlMD4kgAAAAACSGRBAoASuMYhRSnjsY08QG9eOaMxg1r499n5W6\n7+d9nftW2XBRZOfjfHn+Sl8PO0m27+zr9EZq26zO7V1Sz5W6P9i+q7OrO0qSwNVzfd2+z1dNDb8R\nOeYCqX8aP5VhVwutUtvSPyvlJBDpIhEEAAAAgMSQCAIVYIVRVCnl3oN5mpQQ2jldw6SDfc0V1P51\nmgROBo/Pcdn0hOfK9ePdN/j6oNnnDKnzF/p6h9x/scRhi+13ZFzZ0pekvk3q931ZcmNnl1sv9PUz\ncj+M6I40ty+XJNDJMq2vl7t/L1WTwO3mmDv7Od98o5ob2LYkkPRvJuYGpotEEAAAAAASQyIIVIgV\nRjEqzB/s1pSVRquYN5jbO1CTwPOl3p2zr/YPXC718RdmPm4TwYelrpYVRX+yW6psP3J3Z9+F4QuF\nSV1ZHpKqS3V+wJfbZE6gpqDPmUN0PmSRGGyjzAl8Qu4/IFXfl2ek7jXHyGqhttdjv0gCB0MSOBNJ\nIEgEAQAAACAx/CEIAAAAAIlhaCgwYrSaQJVoQp+vzgvKVNZaQnu/nyD1eKknBfVZ13GXVF0YZdmL\nfN0szdZ18ZOnzTE6jHTt7TNf/yipdhjpQhmqueMLvi7+DXlgvdT7pP6xOeijrhjzXd0tw1F12Oqy\nK2aey2ypsVYaz0S2hfQX+EL54tce8FXXkCnyHKJObSMYEgqkgUQQAAAAABIz69ChQ4V3npqaiu58\n8bx+utICiCEZRJVIBoupU0I4SDKobSRmLBajieBpUt8gNQjuphudO+fcKVJ1CIOejC6qounhJnPM\ngeD5NCHUkzrNPKaLtEwvMPNeX2/79MxjTjTHzC3+/5Vpe2RRGF0Q5yGpTwf7rTmic/si+UL2FXh+\nTVdPlarp5+xgvw+Z2xmLxRRJBKteJKYtSSAJYD4WiWmHDXv3RrdPTk7OKvocJIIAAAAAkBjmCAI1\nwdxBVIkm9MXYRGTc6eAwcwZt2jSxU27oxeNfkRp+KOwcvpuk/rJUTdR0nuFxUm0KmDUfbs2rfV1v\nIsjLN/t6xTnymCSBmqit0P4SQ2ZU83/H18NlLuJFsv2TUjWGu8h8IZoEFpnf96hUTTDDVhzvl2o/\nTE8VeN4RIwlsP1JAxJAIAgAAAEBiSASBmqIZParGCqP56rLCaD/JoAZcx5htmg5O6IY/yzj4anNb\nm85r4qVz4U6WqquG2tQsnFOn9y8KJyM65y47Z+Z9XZ1UE8EtstrnMvspHeQTKl+8znncH1Q9f3vu\nYRI4lfP0+tgjwXZ9/+4J9osY19zApqeApH/FkAQiD4kgAAAAACSGRBBoEOYRokp6hZ1kME4TlHHP\nHSzCpkyaDnYlg/3QRTV1tdC3SL3T7JM1p063z4k8FtvmXCcZdL9kNu6P7NjLMl8Ov8HXGzJeP7ZC\naJjixRfoi9N9NwX3XfdqoaNGEpgGkkAUQSIIAAAAAIkhEQQaTK/4kQyiTKwwmm9cyaCdJ9bPSqLh\nvMEwkZruORhbzVLnup0l9RtSNemyKWDWPDh9jrxVODVx1C/yPqmLl+cclMU2RHybL9r/8DVS9fw1\neTRtBLuilLwksNcKoHf4EksBe80NLHteIEkggBCJIAAAAAAkhj8EAQAAACAxDA0FWoBWE6garSa6\nxYbajWq46CDN5mOtJZwzi8j8rNmoQx5Pl6odIHRRlbBdgnOdIZTzgu06ZHTSdctaLOYkvfHtzrZ9\ns3ydKw3q3culanf4j/jy+Fc7x9wnt/Ubo2/CSqlL5Hr4RS90n284JLSPRvB5C8IwJLQYhoIOhkVi\n0A8SQQAAAABIDIkg0FK0mkCVaDURN+qFZKpIBp0z6aAsduKO7uMFwiQtTAidc26u1FOlnhYc+1Ld\ncXbnmO8e8PUYiSeX/b/gSaXrvY3cHpKqvxD16fQN+6wkgY9GzrEPvVpCFGkaX7YmJoGkgIMjCcQg\nSAQBAAAAIDEkgkAiSAhRBeYOxjU5GXQuMm+wj/lxXemhpnx2juAbpN4vNUzsvi5114HOMfqYpohb\npZv9UultsW2rr892DnFPSw0jOX2jLpa6JnK+KudrLzMJLHtuYJOQBA6GFBDDIhEEAAAAgMSQCAKJ\nYqVRVMFe2ScdbE8yGJqxwmhIE7QwGbQN5/8meExXD9XVPPULiUVqD0h9QupLJAnc5WZWe/yTwXN8\nI/K8BfVKAe3LFpHiKqEkgMMhCURZSAQBAAAAIDEkggCm6VVGkkGUgfmDHeNKBp0rng7aFCuWDlrR\n3oOhMBm0c++yeg7qlMC7I8+nqaGuZPoSqQ8Hj9s5giHtg/iM1KmsHV1/8yLHrAkpoHMkgcMiCUTZ\nSAQBAAAAIDH8IQgAAAAAiWFoKIAutJpAFRgqGh/CV/Vw0bIXkLFiC6d0DRfNWjzGue5WDV8P7s9x\n3fQNO0qqNp8/XOoZZt+rpPYaEhqeR0QdF4lpwpBQhoMOjyGhqAqJIAAAAAAkhkQQQE+0mkAVaDXh\njXohmX4UTQatzIVk7OIrWU3nlTaff8Z105PSiPNfg8dt+4hXSr038jyoFEng8EgCUTUSQQAAAABI\nTCmJ4K3OudeU8UQAGoN5hCgT8werTwYHmSuoBkkGc+XNG3SuM4dv0mzTdFCbw98nVb+w5VLvN8f0\nM2lvCMwN7CAJHB5JIEaFRBAAAAAAElPaHMFbzW3SQSA9JIQoU8oJYVuSwUJN50Nho3m7uqemg/vc\nTEdKXXaar3ds7zwWm2PYYCSBAMpEIggAAAAAialk1VBNB0kGgXSx0ijKpGkDyWB5ajFnsNdcwSL2\nS71NksAD5rFYH0Ir7CdYkTLmBdYVSWA5mBeIcSARBAAAAIDEVNpHkGQQgMU8Qgwrlj6klBJWYZhk\nsIiB5goWcazUU6U+KPXVZh+NLu8KjnnQZdN5ippSSmqp569fzyjVcW4gSWA5SAIxTiSCAAAAAJAY\n/hAEAAAAgMRUOjRUMUQUQIwOiWGIKIbR9oVkql40Zhi2kXppzeYt21BeF36ZK/UMqbOl3i71AXOM\ntpZY7mZ6ndTP5Lx2xhDRUanTcFCGgZaPIaGoAxJBAAAAAEjMSBJBRTIIIIZWEyhD25vQ24SoinTQ\ntjioauGYvr3K3Nb48Qip2nRek8JHI8fPDe4fJfWkjMed63xwtBn99pkPT5jbunCMpqE/ce1CElg+\nkkDUCYkgAAAAACRmpImgIhkE0AutJjCsNreaqHOz+aFoyqdzA23EdoFUbf2gSd2dUp9x3XSbpoWa\nHuo8wpdLfdoco+0nbpJ6QrD9i7ETL0+d5gaiPCSBqCMSQQAAAABIzFgSQXVrZBspIYAYEkKUoW0r\njNZ5RdFCju7x+DGR25ry/SC4PzXA62syaF9nxRJfN23z9RTZrr+EzDnrfMGsJvOPxTfXHnMDh0P6\nh6YgEQQAAACAxIw1EYxh/iCAIlhpFMNo2wqjdUgGdTpfqf0E7RzBTcG2MAnc64oL5w7aD8RaSQL1\nl8x/lfqh4PWM6ZVEM5LBIuowN5AkcDgkgWgaEkEAAAAASEztEkFFMgigX8wjxKDaNnewLGWsHjrx\ns5GN4dzAcLVQXd3TxouaBOoPelYS+FSBk7oz57EwmvvPUvXD8S3z2IVS3yj1qnVzRjgAAArBSURB\nVAKvXUMkgcMhCURTkQgCAAAAQGL4QxAAAAAAElPboaGKIaIABsVQUfTLDpFr4jDROiwak2lRzmPh\nkNC5kX0OBPcHGRJaZJ8sx0t9vdm205eD3xv8ace1SAzDQYfHkFA0HYkgAAAAACSm9omgIhkEMCxa\nTqAfTW4xYVOm2qSDk+a2pmvhojBhD4r95pgjgmNUkPJlNXfv1/QiN/r82mpiMrJzoEgjeZLA5iIJ\nRFuQCAIAAABAYhqTCKpbzW3SQQDDYh4himpqi4ky5g2W0UaiK8lzrpP8ffyQ3JB3ee1iXx80+z4i\nVRO5ipLA8Pmmk0F9I79h9jnDV9v3vq5IAodHEoi2IREEAAAAgMQ0LhG0mDcIoGwkhOilqcng2N1v\nbms8+Qbd8CWpb/PlKLn7jDlGVwndOfNp85LAMpK6YzQZ1A1vyNqznnMDSQKHQwqIOrq19y6FkAgC\nAAAAQGIanQgqkkEAVbFXg0kHYcWSljqnhLXsMagp35bVvt4htUBslpUElj1fb/r5/m9QjV5J4DhW\nCCUJHA5JIFJAIggAAAAAiWlFIqhIBgFUifmD6IX5gzlsFKl9BB+Q+j2p2qtPVxidMsfIKqFhEjjq\nFTuLzANUJIHNQxKIuiprXqBFIggAAAAAieEPQQAAAABITKuGhqowOmWoKIAqMFQUWeo8RHRsi8bY\nYZ46NPRJqduDffUkTdP4MoaE9jOscxi0iGgOhoKi7qoYEqpIBAEAAAAgMa1MBEP2L2nSQQBViV1Z\nJiVMW52TwZHba27vk7pS6vZgn4yFYZzrLwkcVQKoSAKbgRQQTVBlEqhIBAEAAAAgMUkkghYtJgCM\nEvMI4Vx3clOHhHCQuYKasL24wL4TP5vz4ClStW1EgSSwqFGmgONoD+EcSeCgSAKBmUgEAQAAACAx\nySWCimQQwDiQEMK5mYlOHdLBMhyT9cDRUudFHns0si1D1tzAtq4EapEADockEE0yirmBikQQAAAA\nABKTbCKoSAYBjBMrjWLcK4uOrK/gpLl9pNQ5+YfkrRBaVRI4zuTPIgUcHkkgmmSUSaAiEQQAAACA\nxPCHIAAAAAAkJvmhoSoWxzJcFMA4sKBMmsY9RLQs020jwg/u8eb2Jqk6XFTHpT7V+/nLHBJal2Gg\nFkNCB8dQUKA/JIIAAAAAkBgSwRwsJAOgDkgI0zKuZNCmY1kLx4SN5G3LiK4kUBPA7ZEX0ORPW0uc\nLnWR1PtyT3VgdUwAFUngYEgB0XTjWCRGkQgCAAAAQGJIBAsgGQRQJ7ScSEMT5gxOp4DOddI9TQLv\nlCrp38H/G3kC2TYRJISxthGDzA0kAWwvkkA02ThTQItEEAAAAAASQyLYB5JBAHWlV8dJBttnHMlg\nVpN5TeXO0A3/yTyoCeBJvhy8Yeaxec3hNRl0QWrYTwpY5/TPIgkcDkkgmqwuSaAiEQQAAACAxMw6\ndOhQ4Z2npqaiO7943rzSTqiJSAgB1BUJYbuNKiUMk8Fw9VBLVxLNTQADw/QGrHMSSPo3PBJAtEmZ\nieBje/dGt09OTs4q+hwkggAAAACQGOYIlsD+dU86CKBOWGG03ca1smhegjdMulcECWAaSALRJnWb\nG6hIBAEAAAAgMfwhCAAAAACJYWhoyWgxAaDuwiFXDBVtvqqHiIbDMcPFY6pS52GgFkNCy8FwULRN\nXYeEKhJBAAAAAEgMiWBFSAYBNAUJYXuMavGYvKSun7SwKYmfRfpXHhJAtFXdk0BFIggAAAAAiSER\nrFh4RYCEEEDd0XKi+WKp1ahaTDQx5Ysh+asOSSBQDySCAAAAAJAYEsERY+4ggCZiHmHzjav5fBOQ\n/lWH9A8pacrcQEUiCAAAAACJIREcE3vFgHQQQNOQEDZXmH6lmBCSAFaPJBCpaFoKaJEIAgAAAEBi\nSARrgJVFATQdK4021zhXGK0ayd/okQQiFU1OAhWJIAAAAAAkhj8EAQAAACAxDA2tIVpMAGgDFpRp\nriYtKMPwz/FiKChS04YhoYpEEAAAAAASQyJYYySDANqEhLC5iqRuZaaGpHz1RxIINB+JIAAAAAAk\nhkSwAWJjkUkJATQdLSfahRSvvUj/gHbNDVQkggAAAACQGBLBhmL+IIA2Yh4hUB8kgUA7k0BFIggA\nAAAAiSERbDiSQQBtRkIIjA4JIOC1OQW0SAQBAAAAIDH8IQgAAAAAiWFoaEuEETZDRQG0ES0ngHIw\nDBTolsqQUEUiCAAAAACJIRFsKXtFg3QQQJuxoAxQHEkg0C21JFCRCAIAAABAYkgEE0CLCQApISEE\nOkgAgWypJoGKRBAAAAAAEkMimBBWFgWQIlYaRUpIAIHeUk8CFYkgAAAAACSGRDBhzB0EkCrmEaIN\nSP+A/pAEzkQiCAAAAACJIRFE9OoIKSGAlOQlK6SFqAsSQABlIhEEAAAAgMTwhyAAAAAAJIahoYhi\nIRkA8FhYBuPAMFCgHCwQk41EEAAAAAASQyKIXDShB4CZSAhRBRJAoFwkgb2RCAIAAABAYkgE0Rfm\nDgLATLSewCBIAIFqkAQWRyIIAAAAAIkhEcRAaEIPAL1lpT4khWkg9QNGhySwfySCAAAAAJAYEkGU\nhvmDAFAM8wrbheQPGB+SwMGRCAIAAABAYkgEUTp6DwLA4JhXWE+kfkC9kAQOj0QQAAAAABLDH4IA\nAAAAkBiGhqJyLCIDAMMrMjSR4aPDYwgoUF8MBy0XiSAAAAAAJIZEECNDE3oAqFY/aVZK6SEpH9Bs\nJIHVIBEEAAAAgMSQCGKsmD8IAONRdkpWRcJIkgekjSSwWiSCAAAAAJAYEkHUAk3oAaDZSO8ADIsE\ncLRIBAEAAAAgMSSCqCXmDgIAAKSBJHA8SAQBAAAAIDEkgqg1eg8CAAC0Dyng+JEIAgAAAEBi+EMQ\nAAAAABLD0FA0DgvJAAAANBNDQuuDRBAAAAAAEkMiiMaiCT0AAEAzkATWD4kgAAAAACSGRBCtQasJ\nAACAeiEJrC8SQQAAAABIDIkgWo0VRgEAAEaPJLD+SAQBAAAAIDEkgkgCK4wCAABUixSwWUgEAQAA\nACAx/CEIAAAAAIlhaCiSRKsJAACA4TAUtNlIBAEAAAAgMSSCgKDVBAAAQG8kge1AIggAAAAAiSER\nBAK0mgAAAOhGEtguJIIAAAAAkBgSQaAHEkIAAJAyksB2IhEEAAAAgMSQCAJ9slfFSAcBAECbkP6l\ng0QQAAAAABJDIggMgfmDAACgDUgC00MiCAAAAACJ4Q9BAAAAAEgMQ0OBEjFUFAAANAlDQtNFIggA\nAAAAiSERBCoUu8pGSggAAMaFBBCKRBAAAAAAEkMiCIwY8wgBAMAokQIihkQQAAAAABJDIgiMGQkh\nAACoAkkg8pAIAgAAAEBiSASBmtGrdySDAACgHySA6AeJIAAAAAAkhkQQqCl6EAIAgCJIAjEIEkEA\nAAAASAx/CAIAAABAYhgaCjQIrSYAAEgbw0BRllL+EHxs794yngYAAAAAMAIMDQUAAACAxPCHIAAA\nAAAkhj8EAQAAACAx/CEIAAAAAInhD0EAAAAASMysQ4cOjfscAAAAAAAjRCIIAAAAAInhD0EAAAAA\nSAx/CAIAAABAYvhDEAAAAAASwx+CAAAAAJAY/hAEAAAAgMTwhyAAAAAAJIY/BAEAAAAgMfwhCAAA\nAACJ4Q9BAAAAAEjM/wduw88GNgdwdQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fa4c6641c50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1, 1, figsize=(10, 10))\n",
    "ax.imshow(np.log(col), cmap=plt.cm.hot)\n",
    "ax.set_axis_off()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "28.9 ms ± 73.1 µs per loop (mean ± std. dev. of 7 runs,\n",
      "    10 loops each)\n"
     ]
    }
   ],
   "source": [
    "%timeit mandelbrot(size, iterations, col)"
   ]
  }
 ],
 "metadata": {},
 "nbformat": 4,
 "nbformat_minor": 2
}
